ID4 ADFS 3.0 和 oidc-client (vue spa) - 回调实现
ID4 ADFS 3.0 and oidc-client (vue spa) - Callback implementation
要在我们的 SPA 中添加 ADFS 3.0 身份验证,我们使用 javascript sample and one (wsfed) external identityprovider, and we also add a local api 作为 SPA 客户端
我们还在登录过程中添加了一个自定义视图,用户可以在其中 "Select WorkingContext" 我们可以设置额外的声明。
问题:如何添加和检索附加声明?
因为我们只需要来自 ws federation 的一些声明,所以我们做了一个超级简单的 callback
我们只需执行以下操作(我正在回答 questions from the docs)
处理回调并登录用户
- 检查由外部提供商提供的身份 return。
- 是的,我们从 wsfed 得到了正确的声明
- 决定您要如何与该用户打交道。如果这是新用户或 returning 用户,这可能会有所不同。新用户可能需要额外的步骤和 UI 才能被允许
在。
- 不需要额外的步骤ui红色
- 可能会创建一个链接到外部提供商的新内部用户帐户。
- 不,我们不需要用户,我们只需要来自 wsfed 的一些声明,所以我们只是 return 基于
FindUserFromExternalProvider
中的 wsfed sub 的 TestUser
- 存储您要保留的外部声明。
- 是否需要存储claims,claims会不会嵌入到jwt token中,token只是简单验证一下?
- 删除临时cookie
- 还行
- 登录用户
- 这里我们想展示一个自定义 ui,用户应该 select 一个 "workingcontext",我们可以添加 "workingcontext" 作为附加声明。
假设以上是有效的,我们如何在步骤 6 中添加额外的声明?
await _events.RaiseAsync(new UserLoginSuccessEvent(provider, providerUserId, user.SubjectId, user.Username, true, context?.ClientId));
似乎没有提供任何添加声明的方法。
这就是我们尝试通过登录过程传递附加声明的方式:
var isuser = new IdentityServerUser(user.SubjectId)
{
DisplayName = user.Username,
IdentityProvider = provider,
AdditionalClaims = additionalLocalClaims
};
await HttpContext.SignInAsync(isuser, localSignInProps);
我们只需要实现 IProfileService
,仅此而已。
要在我们的 SPA 中添加 ADFS 3.0 身份验证,我们使用 javascript sample and one (wsfed) external identityprovider, and we also add a local api 作为 SPA 客户端
我们还在登录过程中添加了一个自定义视图,用户可以在其中 "Select WorkingContext" 我们可以设置额外的声明。
问题:如何添加和检索附加声明?
因为我们只需要来自 ws federation 的一些声明,所以我们做了一个超级简单的 callback
我们只需执行以下操作(我正在回答 questions from the docs)
处理回调并登录用户
- 检查由外部提供商提供的身份 return。
- 是的,我们从 wsfed 得到了正确的声明
- 决定您要如何与该用户打交道。如果这是新用户或 returning 用户,这可能会有所不同。新用户可能需要额外的步骤和 UI 才能被允许
在。
- 不需要额外的步骤ui红色
- 可能会创建一个链接到外部提供商的新内部用户帐户。
- 不,我们不需要用户,我们只需要来自 wsfed 的一些声明,所以我们只是 return 基于
FindUserFromExternalProvider
中的 wsfed sub 的 TestUser
- 不,我们不需要用户,我们只需要来自 wsfed 的一些声明,所以我们只是 return 基于
- 存储您要保留的外部声明。
- 是否需要存储claims,claims会不会嵌入到jwt token中,token只是简单验证一下?
- 删除临时cookie
- 还行
- 登录用户
- 这里我们想展示一个自定义 ui,用户应该 select 一个 "workingcontext",我们可以添加 "workingcontext" 作为附加声明。
假设以上是有效的,我们如何在步骤 6 中添加额外的声明?
await _events.RaiseAsync(new UserLoginSuccessEvent(provider, providerUserId, user.SubjectId, user.Username, true, context?.ClientId));
似乎没有提供任何添加声明的方法。
这就是我们尝试通过登录过程传递附加声明的方式:
var isuser = new IdentityServerUser(user.SubjectId)
{
DisplayName = user.Username,
IdentityProvider = provider,
AdditionalClaims = additionalLocalClaims
};
await HttpContext.SignInAsync(isuser, localSignInProps);
我们只需要实现 IProfileService
,仅此而已。