Azure active directory 为什么可以';我不能在Azure功能需要身份验证时访问它吗?
(我为这个问题的长度道歉;我想说得透彻。) 我是Azure新手,正在尝试设置一个需要身份验证的“无服务器”API。我有一个函数,当身份验证未启用时(基本上只是Node.js中的“Hello,world”),该函数可以正确运行。但是,当我启用身份验证时,我得到的唯一响应是:Azure active directory 为什么可以';我不能在Azure功能需要身份验证时访问它吗?,azure-active-directory,postman,azure-functions,Azure Active Directory,Postman,Azure Functions,(我为这个问题的长度道歉;我想说得透彻。) 我是Azure新手,正在尝试设置一个需要身份验证的“无服务器”API。我有一个函数,当身份验证未启用时(基本上只是Node.js中的“Hello,world”),该函数可以正确运行。但是,当我启用身份验证时,我得到的唯一响应是: You do not have permission to view this directory or page. 要启用身份验证,请执行以下操作: 转到Azure门户中的Azure Active Directory 转到
You do not have permission to view this directory or page.
要启用身份验证,请执行以下操作:
https://.azurewebsites.net/.auth/login/microsoftaccount/callback
- 授权类型:授权代码
- 回调URL:
(与我在上面输入的应用程序注册相同)https://.azurewebsites.net/.auth/login/microsoftaccount/callback
- 验证URL:
https://login.microsoftonline.com//oauth2/authorize?resource= 据我所知,有效载荷看起来是合理的:
{ "aud": "<Application (client) ID>", "iss": "https://login.microsoftonline.com/<Directory (tentant) ID>/v2.0", "iat": 1558488698, "nbf": 1558488698, "exp": 1558492598, "aio": "<base64? data>", "azp": "<Application (client) ID>", "azpacr": "1", "idp": "live.com", "name": "Ben Blank", "oid": "<a GUID I don't recognize>", "preferred_username": "ben.blank@gmail.com", "scp": "User.Read", "sub": "<base64? data>", "tid": "<Directory (tentant) ID>", "uti": "<base64? data>", "ver": "2.0" }
{ “澳元”:“, “国际空间站”:https://login.microsoftonline.com//v2.0", “iat”:1558488698, “nbf”:1558488698, “经验”:1558492598, “扣押入息令”:“, “azp”:“, “阿兹帕克”:“1”, “idp”:“live.com”, “姓名”:“本·布兰克”,
“oid”:"你需要在AAD中将Postman注册为客户端应用程序,并授予它调用你的API的权限,类似于,只是你将授予它访问你的API的权限,而不是链接中的AAD图。你的Postman需要配置为使用该应用程序的客户端id和密码来获取令牌。现在你正在使用Postman请求你的AP我将应用程序配置为获取自身的访问令牌。很可能您的应用程序未在AAD中配置为调用自身!(无论如何都没有意义)。您正在使用Microsoft帐户作为身份验证提供程序。获取访问令牌的方式与Azure Active Directory有关,而不是与之相关 当您访问函数url时,您将重定向到登录页面。您将发现url为
。输入正确的凭证后,您将能够访问您的功能https://login.live.com/oauth20_authorize.srf?
在那篇文章之后,我为邮递员创建了第二个注册,但我不知道如何添加对我的API的访问;在“我的API”上没有显示任何内容选项卡和其他选项卡仅显示Microsoft API。在该选项卡的顶部,应该有一个选项来选择“我的组织使用的API”和“我的API”。选择前者并输入您的API的名称以找到它。如果您使用的是旧版应用程序注册选项卡,请在选择API中输入您的API的名称-然后应该列出它。它不会显示在那里,eit她,即使在按名称搜索时也是如此。这没有任何意义。如果您已使用AAD应用程序注册刀片注册了API,并且您成功地为其定义了机密(意味着您将其定义为机密客户端),则它应该作为您的邮递员(或任何其他客户端)的潜在目标API可见。您是否看到您可能已在同一租户(而非MS API)中注册的任何其他web应用程序?如果没有,您可能必须打开一张支持票证。您是要使用Microsoft帐户还是Azure Active Directory帐户登录?@TonyJu我想使用任何Microsoft帐户登录,但管理员总是告诉我要通过AAD登录。这没关系,但请记住选择“任何组织目录中的帐户和个人Microsoft帐户”(如Skype、Xbox、Outlook.com)作为支持的帐户类型,如果您在中创建应用程序AAD@TonyJu是的!我确信这一点。一定要点击帮助你的帖子上的“标记为答案”,并投票认为它是有帮助的,这对其他社区成员是有益的。