Azure ad b2c Azure AD B2C自定义策略,如何将应用程序范围放入访问令牌

Azure ad b2c Azure AD B2C自定义策略,如何将应用程序范围放入访问令牌,azure-ad-b2c,Azure Ad B2c,下面是Azure AD B2C的配置,创建两个应用程序:web和api。在api作用域中添加了两个读写作用域。将web应用程序配置为web应用程序。使用内置用户流进行测试,例如注册登录。运行web应用程序的流,获取访问令牌,范围位于令牌中 现在创建一个自定义策略,使用多租户使用Azure AD对用户进行身份验证。创建一个自定义注册/登录策略。运行策略,通过在访问令牌中指定api作用域来获取访问令牌,但是返回令牌不包含作用域声明。我的问题是如何配置自定义策略,使api作用域位于访问令牌中 运行自定

下面是Azure AD B2C的配置,创建两个应用程序:web和api。在api作用域中添加了两个读写作用域。将web应用程序配置为web应用程序。使用内置用户流进行测试,例如注册登录。运行web应用程序的流,获取访问令牌,范围位于令牌中


现在创建一个自定义策略,使用多租户使用Azure AD对用户进行身份验证。创建一个自定义注册/登录策略。运行策略,通过在访问令牌中指定api作用域来获取访问令牌,但是返回令牌不包含作用域声明。我的问题是如何配置自定义策略,使api作用域位于访问令牌中

运行自定义策略时,它将只返回ID令牌,而不是访问令牌

GET https://<tenant-name>.b2clogin.com/tfp/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize?
client_id=<application-ID>
&nonce=anyRandomValue
&redirect_uri=https://jwt.ms
&scope=https://<tenant-name>.onmicrosoft.com/api/read
&response_type=code
因此,您的范围声明不会包含在ID令牌中

你应该参考

完成后,使用授权代码流获取访问令牌

GET https://<tenant-name>.b2clogin.com/tfp/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize?
client_id=<application-ID>
&nonce=anyRandomValue
&redirect_uri=https://jwt.ms
&scope=https://<tenant-name>.onmicrosoft.com/api/read
&response_type=code
成功接收授权码后,您可以使用它请求访问令牌:

POST <tenant-name>.onmicrosoft.com/oauth2/v2.0/token?p=<policy-name> HTTP/1.1
Host: <tenant-name>.b2clogin.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&client_id=<application-ID>
&scope=https://<tenant-name>.onmicrosoft.com/api/read
&code=eyJraWQiOiJjcGltY29yZV8wOTI1MjAxNSIsInZlciI6IjEuMC...
&redirect_uri=https://jwt.ms
&client_secret=2hMG2-_:y12n10vwH...

请参阅详细信息。

如果我的答案对您有帮助,您可以接受它作为答案。这可能对其他社区成员有益。谢谢。使用Azure portal for B2C中的测试UI。拿回代币,例如用。这是access_令牌,但scp声明不存在。因此,我想知道我的依赖方自定义策略是否需要专门为scp添加outputclaims。没关系,是门户测试UI没有显示声明中的作用域,可以与应用程序中的代码配合使用。
{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ilg1ZVhrN...",
    "token_type": "Bearer",
    "not_before": 1549647431,
    "expires_in": 3600,
    "expires_on": 1549651031,
    "resource": "f2a76e08-93f2-4350-833c-965c02483b11",
    "profile_info": "eyJ2ZXIiOiIxLjAiLCJ0aWQiOiJjNjRhNGY3ZC0zMDkxLTRjNzMtYTcyMi1hM2YwNjk0Z..."
}