我为移动应用创建了应用服务。然后我已将身份验证添加到应用服务。然后选择身份验证类型为"使用Azure AD"登录。它工作正常。
是否可以使用自定义登录页面而不是基于浏览器的登录屏幕?
我可以使用https://login.microsoftonline.com/ / oauth2 / token获取令牌。但是无法使用此承载令牌授权应用服务。
答案 0 :(得分:1)
是否可以使用自定义登录页面而不是基于浏览器 登录界面?
此页面是AzureAD的身份验证终结点。虽然它可以通过公司品牌进行配置,但我认为它不能为Moblie APP自行定制。
我能够通过使用获得令牌 https://login.microsoftonline.com//oauth2/token。但是不能 使用此承载令牌授权应用服务。
Web应用程序的身份验证/授权是保护Web App隐藏在这些IDP背后的功能,而不仅仅是您可以使用REST API访问它的其他azure资源。我明白你想做什么。但不建议或不支持此操作。
答案 1 :(得分:1)
我可以使用https://login.microsoftonline.com//oauth2/token获取令牌。但是无法使用此承载令牌授权应用服务。
当juunas回答时,您的令牌可能与您在Azure门户上配置的AAD提供商不匹配。您可以按here检查配置的详细信息。此外,您可以使用https://jwt.io/解码access_token并验证相关属性(例如,aud
应该是您在Azure门户上配置的clientId等。)
由于App Service Authentication / Authorization(EasyAuth)声明如下:
通过网络浏览器与您的应用程序交互的用户将设置一个cookie,以便他们在浏览您的应用程序时可以保持身份验证。对于其他客户端类型(例如移动设备),应在
X-ZUMO-AUTH
标头中显示的JSON Web令牌(JWT)将发布给客户端。移动应用客户端SDK将为您处理此问题。 或者,Azure Active Directory标识令牌或访问令牌可以作为承载令牌直接包含在Authorization标头中。
对于Azure Web App或Azure移动应用程序,您可以按如下方式访问端点:
https://{your-app-name}.azurewebsites.net/api/values
Header: Authorization:Bearer {the id_token or access_token of AAD}
或者
https://{your-app-name}.azurewebsites.net/api/values
Header: x-zumo-auth:{authenticationToken}
此外,如果您在移动应用中检索access_token,您还可以使用它来检索authenticationToken
并使用authenticationToken
与后端端点进行通信。
POST https://{your-app-name}.azurewebsites.net/.auth/login/{provider-name,for your scenario, it would be AAD}
Body: {"access_token":"<your-access-token>"}
对于您的移动客户端,您可以将客户端用于Azure移动应用,您可以关注here的详细信息。此外,您可以按照Authenticate users了解App Service身份验证的客户端流和服务器流身份验证。
答案 2 :(得分:0)
正如Wayne Yang所说,登录页面的自定义仅限于徽标和一些文本。
我不确定您是否可以使用API的“Easy Auth”。 您可能需要在应用中实际执行身份验证。
在这种情况下,您的API将验证传入的JSON Web令牌,以使其签名有效,并且受众和发行者是预期的。 大多数框架都提供JWT身份验证,因此它主要归结为正确配置。