如何在Azure AD登录响应中添加自定义键值对?
在Azure AD登录响应中添加自定义键值的方法
1. 在ID Token/Access Token的Claims中添加自定义字段(服务端层面)
如果要让Azure AD在返回的令牌(ID Token或Access Token)中包含自定义键值对,比如myownkey: "myownkeyvalue",可通过以下配置实现:
- 使用Azure AD自定义声明:
- 登录Azure门户,进入Azure AD -> 应用注册,找到目标应用。
- 进入令牌配置,选择添加自定义声明。
- 设置声明名称为
myownkey,源类型选静态,源值填入myownkeyvalue,并指定该声明要包含的令牌类型(ID Token或Access Token)。
- Azure AD B2C场景用自定义策略:
若使用Azure AD B2C,可通过自定义策略中的ClaimsTransformation定义自定义值,再通过OutputClaim将myownkey输出到令牌中。
2. 在客户端登录响应对象中添加自定义字段(客户端层面)
如果不需要将自定义值嵌入Azure AD颁发的令牌,仅在客户端本地的登录响应对象中添加键值对(如你示例中idTokenClaims同级的myownkey),可在客户端SDK的登录回调中手动添加:
- 以MSAL.js为例:
这种方式仅在客户端本地生效,不会修改Azure AD返回的原始令牌内容。myMSALObj.loginPopup(loginRequest) .then(response => { // 在响应对象中添加自定义键值 response.myownkey = "myownkeyvalue"; // 后续业务逻辑处理 }) .catch(error => { console.error(error); });
注意:如果需要所有客户端和服务都能获取到自定义值,优先选择在令牌中添加自定义声明的方式;仅客户端本地使用的话,客户端手动添加更灵活。
内容的提问来源于stack exchange,提问作者Indika
相关产品推荐
相关产品推荐

