[英]Azure API Management OAuth 2.0 Resource Owner Password Flow Client ID
语境:
我的软件应用程序是一个多租户应用程序,客户可以登录并生成他们自己的客户端 ID,以便与资源所有者密码流 OAuth 请求一起使用。
我们的 OAuth 2.0 授权服务器内置于 WebAPI 中,并继承自 Microsoft 提供的 Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerProvider 类。 目前,我们只支持一个流程(资源所有者密码)来获取令牌,它看起来像:
POST /api/v1.0/token HTTP/1.1 Host: api.mysoftwareapp.com UserName={username}&Password={password}&grant_type=password&client_id={client_id}
验证凭据和客户端 ID 后,我们发回 Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerProvider 基类生成的访问令牌。 为了访问资源,用户需要在 Authorization 标头中提供 access_token 作为 Bearer 令牌。 不需要再次传入客户端 ID。 下面的例子:
GET /api/v1.0/Partners HTTP/1.1 Host: api.mysoftwareapp.com Authorization: Bearer this_is_where_the_token_goes
我想实现 Azure API 管理的开发人员门户功能,并允许我的客户在进行测试调用时能够输入自己的用户名、密码和客户端 ID,以便他们在租户的上下文中获取数据(并最终 - 通过客户端 ID 启用速率限制)。
在发布者门户中,在 Security->OAuth 2.0 下,我已经:
我也做了以下,因为他们是必需的,但我相信不适用,因为只支持资源所有者密码流,并通过我自己的应用程序处理客户端注册:
当我导航到开发人员门户并查看端点时,我可以在我的身份验证服务器下选择“资源密码”。 但是,当我选择它时,弹出窗口显示只允许我输入我的用户名和密码,而不是我的客户 ID。
我如何设置 Azure API 管理以允许用户在设置授权时也指定他们想要使用的客户端 ID - 或者我们是否需要更改我们的 API 以在调用特定资源时而不是何时需要客户端 ID请求令牌?
这就是我需要的:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.