Azure active directory Outlook加载项SSO访问令牌缺少电子邮件声明
我正在创建outlook加载项,并尝试使用SSO访问令牌作为后端的授权 我的流程正在运行。我触发我的外接程序,获取访问令牌并使用访问令牌“登录”到我的后端 但是,我的问题是,尽管a)将其添加到Azure应用程序注册中的API权限中,b)添加到WebApplicationInfo中,但我没有在令牌中获得电子邮件声明。我应该收到它吗 Azure应用程序注册权限 Web应用程序信息Azure active directory Outlook加载项SSO访问令牌缺少电子邮件声明,azure-active-directory,microsoft-graph-api,outlook-addin,office-addins,Azure Active Directory,Microsoft Graph Api,Outlook Addin,Office Addins,我正在创建outlook加载项,并尝试使用SSO访问令牌作为后端的授权 我的流程正在运行。我触发我的外接程序,获取访问令牌并使用访问令牌“登录”到我的后端 但是,我的问题是,尽管a)将其添加到Azure应用程序注册中的API权限中,b)添加到WebApplicationInfo中,但我没有在令牌中获得电子邮件声明。我应该收到它吗 Azure应用程序注册权限 Web应用程序信息 <WebApplicationInfo> <Id>xxx</Id>
<WebApplicationInfo>
<Id>xxx</Id>
<Resource>api://localhost:3000/xxx</Resource>
<Scopes>
<Scope>openid</Scope>
<Scope>User.Read</Scope>
<Scope>profile</Scope>
<Scope>email</Scope>
</Scopes>
</WebApplicationInfo>
虽然我知道upn和unique_名称声明中返回了电子邮件地址,并且我知道oid应该用作此用户的唯一标识符,但是,我需要根据电子邮件地址进行查找(如果存在).您需要自定义访问令牌配置,然后将电子邮件添加为可选声明。转到azure门户>应用注册>你的应用>令牌配置 解析令牌: 您需要注意:对于托管用户(租户内部的用户),必须通过此可选声明或仅在v2.0上使用OpenID范围请求。
请参阅:.电子邮件值是的一部分。如果用户是租户中的来宾,则默认情况下会包含该值。对于托管用户(它意味着租户内的用户),必须通过此可选声明或仅在v2.0上使用OpenID范围请求。对于托管用户,必须在Office admin portal()中设置电子邮件地址。电子邮件值是可选声明的一部分。如果用户是租户中的来宾,则默认情况下会包含该值。对于托管用户(它意味着租户内的用户),必须通过此可选声明或仅在v2.0上使用OpenID范围请求。对于托管用户,必须在Office admin portal()中设置电子邮件地址。您有机会研究我的答案吗?这对你有帮助吗?
{
"aud": "api://localhost:3000/xxx",
"iss": "https://sts.windows.net/my_tenant_id/",
"iat": 1605992211,
"nbf": 1605992211,
"exp": 1605999711,
"acr": "1",
"aio": "E2RgYDDdzii4P/xP/cPTbg4lPk7dJ6c8aQnapLU19aiV+Zy400sA",
"amr": [
"pwd"
],
"appid": "xxx",
"appidacr": "0",
"family_name": "Adams",
"given_name": "Iain",
"ipaddr": "51.111.111.111",
"name": "Iain Adams",
"oid": "my_oid",
"pwd_exp": "157262",
"pwd_url": "https://portal.microsoftonline.com/ChangePassword.aspx",
"rh": "0.AAAAmj9NLsNP80SAITLYeWEJg9YOWdOzUgJBrv-q0ikqsBxHANs.",
"scp": "access_as_user",
"sub": "my_sub",
"tid": "my_tenant",
"unique_name": "iain@abc.com",
"upn": "iain@abc.com",
"uti": "1KNbNttkDUCrKXblaK5BAA",
"ver": "1.0"
}