Azure active directory 使用Swagger UI获得AzureAD隐式流

Azure active directory 使用Swagger UI获得AzureAD隐式流,azure-active-directory,swagger,swagger-ui,Azure Active Directory,Swagger,Swagger Ui,作为练习,我一直在尝试创建一个可以调用Azure管理API的招摇过市配置,并从在线招摇过市编辑器运行它 我已经将它配置为使用隐式身份验证,它几乎可以工作,但我无法让Azure框架将swagger编辑器识别为有效的重定向URL 以下是我采取的所有步骤。谁能看出我做错了什么 使用Azure广告门户,我创建了一个新的Azure广告应用程序 在应用程序注册的回复URL中,我添加了https://editor.swagger.io/oauth2-redirect.html 我在我的Swagger 2

作为练习,我一直在尝试创建一个可以调用Azure管理API的招摇过市配置,并从在线招摇过市编辑器运行它

我已经将它配置为使用隐式身份验证,它几乎可以工作,但我无法让Azure框架将swagger编辑器识别为有效的重定向URL


以下是我采取的所有步骤。谁能看出我做错了什么


使用Azure广告门户,我创建了一个新的Azure广告应用程序

在应用程序注册的回复URL中,我添加了
https://editor.swagger.io/oauth2-redirect.html

我在我的Swagger 2.0文档中创建了以下安全条目:

securityDefinitions:
  azureTokenAuthentication:
    flow: implicit
    authorizationUrl: https://login.microsoft.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/oauth2/authorize
    scopes:
      https://management.azure.com: Accessing the Azure API
    type: oauth2
security:
- azureTokenAuthentication:
  - https://management.azure.com
(修订后的GUID是我的租户id)

现在,当我点击“授权”按钮时,斯威格为我打开了一个对话框:

因此,我输入应用程序ID并单击“授权”。然后,它使用以下参数将我发送到登录URL:

  • 响应类型:令牌
  • 客户id:eb482fb2-8229-434e-b5a6-9fc3e0f06968
  • 重定向uri
    https://editor.swagger.io/oauth2-redirect.html
  • 范围
    https://management.azure.com
  • 2019年3月13日星期三09:16:06 GMT+1000(澳大利亚东部标准时间)
请注意,
重定向uri
与我在应用程序注册中输入的值匹配

因此,我输入用户名和密码,然后URL被重定向到以下位置:

https://login.live.com/err.srf?lc=1033#error=invalid_request&error_description=The+provided+value+for+the+input+parameter+'redirect_uri'+is+not+valid.+The+expected+value+is+a+URI+which+matches+a+redirect+URI+registered+for+this+client+application.&state=rQIIAdNiNtQztFJJTTKxMEpLMtK1MDKy1DUxNknVTTJNNNO1TEs2TjVIMzCzNLMoEuISWF1yo3vvud0Ozb9b9Z66bQ-cxcgZn5NZlqqXnJ-7ilEvo6SkoNhKXz81JbMkv0ivuDwxPT21SC8zXz8_sbQkw0i3CChTlJpcAlSZm7ODkfECI-MLRsZbTPz-jiB5EJFflFmVOos5JswoLNvT1TAjOdOxwrfSsdLXxdXU08XR1D_L1cg_y9HI0zXFL8y5uMLXxbHc0znDKSXCzyA51604Mdyt1NM1LCPZOCgnOdckPdQ4KCMpNygjOTcwPcw9pyQqONt2E7NKSqqpuZGhmZGuabJ5iq6JRVqSrmWSqaGuubmlabKpeaKZqWXyKWYZmI9yE_MS01NzU_NK9BKrSovAHr7BzHiBhfEVC48BsxUHB5cAgwSDAsMPFsZFrMCQmrTR22we8wzHyc1Bd633_2M4xapfku7mkeJk5qxfkpOb7lcUXB5SmOZb7Jef7l-c526UmVUQqV_q5Zzh4uzma2tkZTiBTeYDG2MHO8MuThID9haXiJGBoaWugbGuoZGCkbGVoZmVgXkUAA2
我从中收集到的有趣的文本是:

为输入参数“redirect_uri”提供的值无效。预期值是一个URI,该URI与为此客户端应用程序注册的重定向URI相匹配


但它确实匹配!我做错了什么

首先,我将授权URL从
https://login.microsoft.com//oauth2/authorize
https://login.microsoft.com//oauth2/v2.0/authorize

然后,我必须遵循,并直接修改应用程序清单以允许隐式流:

然后我改变了范围。我无法运行
management.azure.com
,但我可以运行
https://graph.windows.net
通过将
/.default
附加到范围。(
https://graph.windows.net/.default

这使我又前进了一步。现在它重定向到授权URL,Microsoft对我进行了身份验证,为我生成了一个令牌,并将我的浏览器重定向到
https://editor.swagger.io/oauth2-redirect.html

然后,当我意识到
editor.swagger.io
实际上并不处理它将浏览器重定向到的路径时,我被挫败了。(GitHub上存在文件
outh2 redirect.html
,此处:)


那是我放弃的时候。

首先,我将授权URL从
https://login.microsoft.com//oauth2/authorize
https://login.microsoft.com//oauth2/v2.0/authorize

然后,我必须遵循,并直接修改应用程序清单以允许隐式流:

然后我改变了范围。我无法运行
management.azure.com
,但我可以运行
https://graph.windows.net
通过将
/.default
附加到范围。(
https://graph.windows.net/.default

这使我又前进了一步。现在它重定向到授权URL,Microsoft对我进行了身份验证,为我生成了一个令牌,并将我的浏览器重定向到
https://editor.swagger.io/oauth2-redirect.html

然后,当我意识到
editor.swagger.io
实际上并不处理它将浏览器重定向到的路径时,我被挫败了。(GitHub上存在文件
outh2 redirect.html
,此处:)

那就是我放弃的时候。

reply url=“您的web api的招摇过市页面url”与“/oauth2 redirect.html”连接在一起

例如:

为应用程序注册中的每个环境(包括本地主机)配置

reply url=“您的web api的招摇过市页面url”与“/oauth2 redirect.html”连接

例如:


为应用程序注册中的每个环境(包括本地主机)配置

从您的帖子中,您使用了错误的授权URL,正确的应该是:
https://login.microsoftonline.com/your-tenant-name/oauth2/authorize?
@SunnySun-我的错误,我正确使用的是租户ID,而不是订阅ID。我会解决我的问题。(我希望是这样愚蠢的事情:-)在你的帖子中,你使用了错误的授权URL,正确的应该是:
https://login.microsoftonline.com/your-tenant-name/oauth2/authorize?
@SunnySun-我的错误,我正确使用的是租户ID,而不是订阅ID。我会解决我的问题。(我希望是那样愚蠢的事情:-)