gpt4 book ai didi

azure - Azure Active Directory 应用程序中的应用程序角色和组声明(作为角色发出)

转载 作者:行者123 更新时间:2023-12-03 05:12:00 26 4
gpt4 key购买 nike

我已使用名为 read应用角色注册了 Azure AD 应用程序

用户主体

如果将用户主体分配给应用角色read,并且在 Azure AD 应用中添加groups 声明(已启用emit_as_roles) ,只有 AAD 安全组显示在用户的 token (roles 声明)中,而不显示用户已分配到的应用角色。

文档中提到了这一点:

If "emit_as_roles" is used, any application roles configured that the user is assigned won't appear in the role claim.

服务主体

显然,同样的情况似乎也适用于服务主体,尽管

Service principals won't have group optional claims emitted in the JWT.

正如预期的那样,禁用(默认) token 配置中的 emit_as_roles 设置允许我再次查看 roles 声明中的信息 read .

<小时/>

我认为这是 Azure AD 中服务主体预期行为。但是,文档仅针对用户提到了这一点,而没有针对服务主体提到这一点。

最佳答案

你是对的。这是 Azure AD 中用户和服务主体的预期行为。

由于服务主体是服务的安全主体,但从用户角度来说,它是用户主体。

因此,当为组声明启用“emit_as_roles”时,分配给用户或服务主体的任何应用程序角色都不会出现在角色声明中。

我已经检查了 token :当在组声明中启用emit_as_roles时:

enter image description here

授权网址:

https://login.microsoftonline.com/xxx/oauth2/v2.0/authorize?client_id=xxxbb5&scope=https://graph.microsoft.com/.default&grant_type =authorization_code&response_type=code&redirect_uri=https://jwt.ms

token 网址

代币声明:https://login.microsoftonline.com/xxx/oauth2/v2.0/token

{
"aud": "https://graph.microsoft.com",
"iss": "https://sts.windows.net/4xx/",
"iat": 1684912827,
"nbf": 1684912827,
"exp": 1684917432,
"acct": 0,
"acr": "1",
"aio": "AYQAexxxx",
"altsecid": "5::100xx14397",
"amr": [
"rsa",
"mfa"
],
"app_displayname": "kavyarepo",
"appid": "xxx",
"appidacr": "1",
"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e59d9d9da5888c86978a968a8391cb868a88" rel="noreferrer noopener nofollow">[email protected]</a>",
"family_name": "Kavya",
"given_name": "xx",
"idp": "https://sts.windows.net/xxxx/",
"idtyp": "user",
"ipaddr": "115.110.154.186",
"name": "xxx",
"oid": "xxx",
"platf": "3",
"puid": "100xxxC5",
"rh": "0.xxxx.",
"scp": "Directory.AccessAsUser.All openid profile User.Read User.Read.All email",
"sub": "xxxx",
"tenant_region_scope": "NA",
"tid": "xxx",
"unique_name": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="493131310924202a3b263a262f3d672a2624" rel="noreferrer noopener nofollow">[email protected]</a>",
"uti": "p6nDIxxxxsjAzAA",
"ver": "1.0",
"wids": [
"xxxx",
"xxxx",
"xxx"
],

enter image description here

如果应用程序角色需要包含在 token 中,对于用户和服务主体,必须禁用“emit_as_roles”选项。

关于azure - Azure Active Directory 应用程序中的应用程序角色和组声明(作为角色发出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76308185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com