问题标签 [implicit-flow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
387 浏览

azure - Azure Web App - Azure AD - SPA - response_type 中缺少“令牌”

我们正在使用 Azure Web 应用程序并使用 Web 应用程序的身份验证来强制执行 Azure AD 身份验证。我们让它有点工作,但正在尝试获取访问令牌,因为我们正在使用它来锁定 API 调用。查看网络调用,对 MSFT 端点的授权调用只有响应类型的“open_id 代码”。显然,我可以将响应的代码转换为访问令牌,但我也应该能够在回调中获取访问令牌。

我已经检查了清单上的 oauth2AllowImplicitFlow 是否设置为 true,但这就是我能找到的所有内容。

知道如何将“令牌”添加到 response_type 列表中吗?

0 投票
1 回答
791 浏览

azure - 使用 AAD 和 Azure 函数的简易身份验证隐式流返回未经授权

API 复制

  • 我在 azure 门户中创建了一个简单的 azure 函数应用程序,并通过 http 绑定运行。函数只返回字符串“来自安全 API 的 Hello”。

  • 接下来在平台功能中,我选择了Authentication/Authorization。我打开了应用服务身份验证。我选择了请求未通过身份验证时要执行的操作:使用 AAD 登录。选择 AAD 作为我的提供程序并配置为 Express 模式(默认目录)并为新的 Active Directory 应用程序选择 {name}。

  • 我还添加到 CORS 策略地址:http://localhost:8080我的 Vue.js 客户端应用程序正在运行。

  • 在这些操作之后,我已经在我的 AAD 中注册了应用程序,并且已经定义了user_impersonation范围。AD App 已经配置了重定向 URI:https://{name}.azurewebsites.net/.auth/login/aad/callback,在 Web 平台上检查了 Id 令牌的隐式授权。我想将支持的帐户类型更改为多租户,但由于某些错误我不能。

  • 在 Expose Api 部分,我将 App Id Uri 从 https://{name}.azurewebsites.net 更改为 api://{app id} 以选择多租户支持的客户端类型。已经定义了 user_impersonation 范围。

客户代理

  • 我在 Web 平台上使用重定向 uri http://localhost:8080/注册了我的应用程序,并在隐式授予部分中同时选择了 id 和访问令牌。我选择了多租户帐户类型。

  • 我向我的 API(天蓝色函数)添加了 api 权限api://{api app id }/user_impersonation

  • 我在我的 vue.app 中使用 MSAL.JS。我在那里完成了我所有的工作。弹出窗口,提供我的登录名和密码。

  • 我从身份提供者 (AAD) 在我的 vue.js 客户端应用程序中收到了 id 令牌和访问令牌。

  • 我正在使用授权标头 Bearer {access_token} 向我的 API(天蓝色函数)发送请求。

问题

我的 API 请求未经授权。我得到状态 401:

Http 地址是从 azure 门户复制的。

当我单击链接时,我被重定向到登录,然后在浏览器选项卡中使用我的“Hello from secure API”文本重定向到 azure 函数。

我似乎 Easy auth 将我的 azure 函数视为客户端应用程序,无论我是否希望它成为我的 vue.js 应用程序的中间件 APi。我的 Azure 函数 API 应该只接收和验证访问令牌。

试过了

我还尝试使用令牌从邮递员发送请求,但也收到了未经授权的请求。

我探索了令牌,它似乎是正确的:

0 投票
1 回答
247 浏览

oauth-2.0 - 更改已通过身份验证的用户的声明?

有什么方法可以将额外的参数传递给来自 oidc-client 的 signinsilent / 静默刷新调用,基于这些参数我可以向访问令牌添加额外的声明?

基本上我们有资源服务器和授权服务器(身份服务器 4 设置),它处理身份管理和授权)。我们的产品是一个 Angular 应用程序,我们使用访问令牌调用 API,我们在客户端使用 oidc-client。我们使用静默更新来更新客户端的令牌。

在我们的应用程序中,用户可以访问多个组织,并且在每个组织中使用可以具有不同的角色。目前,当用户登录时,我正在添加默认组织的角色作为角色声明。当用户切换到其他组织时,我需要使用新的组织角色刷新声明。我正在使用隐式流程。

请帮我提出建议。

0 投票
1 回答
150 浏览

azure-ad-b2c - Azure B2C 隐式流:在不使用 iFrame 的情况下获取新的访问令牌

在 Azure B2C 文档中,您可以获得有关在前一个访问令牌过期时静默获取新访问令牌的信息。

ID 令牌和访问令牌都会在短时间内过期。您的应用必须准备好定期刷新这些令牌。若要刷新任一类型的令牌,请执行我们在前面示例中使用的相同隐藏 iframe 请求,方法是使用 prompt=none 参数来控制 Azure AD 步骤。要接收新的 id_token 值,请务必使用 response_type=id_token 和 scope=openid,以及一个 nonce 参数。

有没有办法在没有 iFrame 的情况下做到这一点?

0 投票
0 回答
682 浏览

angular - Angular oauth2-oidc - 配置的哪一部分检索令牌以及它存储在哪里?

我正在尝试在我的应用程序中使用库angular-oauth2-oidc

这是我的 AuthConfig

这是我为隐式流配置解决方案的组件:

如您所见,我没有this.oauthService.initImplicitFlow()在上面的代码中调用。我在一个子组件中执行此操作,在该组件中我还收集了一些用户的额外详细信息并将它们存储到本地存储中,然后再将它们重定向到标识提供者。

这段代码工作得很好。我这么说是因为即使用户被重定向到身份提供者并且也被正确识别,但在本地存储或会话存储中都看不到令牌,即使我可以看到在 url 中返回了令牌:

我想知道的是:

  1. 上面代码的哪一部分应该检索和存储access_token身份提供者返回的内容?
  2. 它应该存储在哪里?

如果#access_token附加到 的那个段redirectUri不是在您将范围配置为 时应该返回的令牌responseType: 'id_token token',那么我应该在哪里查找该令牌?

我真的希望你能对此有所了解。

0 投票
1 回答
385 浏览

oauth-2.0 - 隐式流在 Azure AD 中没有正确反应

我有一个调用节点 API 的 React SPA,该 API 又调用另一个节点 API。我将第一个 API 配置为允许 user1 访问。我将第二个 API 配置为只允许第一个 API 访问它。当 user1 单击按钮以调用 api 时,使用下面的代码,我收到此错误:

AADSTS700051:没有为应用程序启用 response_type 'token'。

代码:

清单中的“oauth2AllowImplicitFlow”设置为 true,这似乎是我迄今为止发现的所有问题的解决方案。此外,在身份验证和隐式授权下,访问令牌和 ID 令牌都被检查

我很困惑是什么问题。我已经按照它应该的方式配置了它。

0 投票
2 回答
3041 浏览

angular - 在 oidc-client 中验证状态和随机数

我的理解是-oidc-client生成随机数和状态并将其发送到授权服务器(身份服务器 4)。这用于防止CSRF攻击,重放攻击。

状态和随机数通过下面的 signinredirect() 示例发送

问题 1 - 回调后未定义状态

状态添加到回调 URL 如下

状态必须存在于用户中。但就我而言,我在回调方法中看到状态未定义

状态未定义,但会话状态具有价值

问题 -

  1. oidc在生成后将状态存储在哪里?
  2. 为什么状态未定义?回调后如何检索状态?我猜不是通过 URL(路径)!
  3. oidc 是否在内部验证状态?如何?在哪里?

问题 2 - 随机数

在 id_token 中接收到 nonce 值

我还看到登录后有 2-4 个 oidc 用户存储在本地存储中。为什么这样?他们有相同的用户信息,但不同的 ID 和 nonce。我用户 clearstalestate() 到这些都是在每次新登录或刷新后生成的 在此处输入图像描述

问题 -

  1. 为什么 2-4 个用户信息存储在本地存储中?哪种方法生成本地存储用户?
  2. nonce 值是每个会话还是每个用户请求?
  3. 生成后的nonce值存储在哪里?
  4. oidc 是否在内部验证随机数?在哪里?如果不是我应该怎么做?
0 投票
2 回答
587 浏览

oauth-2.0 - 使用 Azure B2C 并通过 Apple / MSAL.JS / 隐式流登录 - 获取令牌静默失败并出现 X-Frame Deny 错误

我目前正在使用一个 React 应用程序,它使用 MSAL.js 向我在 Azure B2C 中注册的 Apple 身份提供程序进行身份验证。我的实施基于一个指南:Post-GA Revisit of "Sign In with Apple" for Azure AD B2C

除了访问令牌请求外,一切都在工作,我在登录后尝试静默获取。我目前收到 iFrame msal.js 使用中发生的 X-Frame Deny 错误,它回退到一个 acquireTokenRedirect 哪个要求用户再次登录(不是很好的用户体验)然后它就可以工作了。

来自浏览器控制台的错误:

拒绝显示'https://appleid.apple.com/auth/authorize?client_id=com.my.clientid&redirect_uri=https://myb2ctenant.b2clogin.com%2foauth2%2fauthresp&response_type=code&scope=email&response_mode=form_post&nonce=nonce&state=StateProperties% 3drandomCharshere',因为它将'X-Frame-Options'设置为'deny'。

不幸的是,Apple 关于其端点的隐式流的文档是有限的。

我的两个问题是:

  1. 我想知道通过 Apple 登录是否可能无法使用隐藏的 iFrame 技术以静默方式获取令牌。有没有人成功实施这个?

  2. 我知道当遇到与其他身份提供商(例如 Google)的确切 X-Frame 拒绝问题时,您可以将 login_hint 传递给acquireTokenSilent 请求,该请求允许跳过交互(例如,如果用户有多个帐户并进入帐户选择屏幕iFrame)。不过,我没有成功地将各种声明作为 login_hint 传递给 Apple Provider(并且关于它的文档似乎不存在)。

0 投票
0 回答
196 浏览

oauth - Blazor Web Assembly connecting to OAuth via Implicit Flow

In my blazor web assembly project, I have to connect to a Web API that doesn't implement OIDC.

I read on the aspnetcore github thet they made the choice to implement only OIDC connections...

I think I have to write a custom implementation of RemoteAuthenticationService and add it via the builder.Services.AddRemoteAuthentication method, but can't understand how to do this. Reading the current implementation of RemoteAuthenticationService doesn't help.

The only thing I have to do to connect the Web API is to call this URI :

The user fill in the form and get redirected in my blazor app via the RedirectUri, having the accessToken in url parameters.

Then I have to add the accessToken in the headers of all Web API Requests, but I found how to do it via AuthorizationMessageHandler.

How can I implement this flow with Blazor Web Assembly ? Do I search in wrong direction ?

0 投票
1 回答
107 浏览

oauth-2.0 - Java 中 OIDC 隐式代码流的示例代码

我是使用 OIDC 的隐式流的新手,我正在寻找示例代码。我在互联网上找不到任何东西。有人可以在任何地方提供示例代码的链接。

非常感谢任何帮助。