Auth Provider
OIDCAuthenticationProvider 类实现了可以与标准身份验证管理系统一起使用的 Spring Security Authentication Provider。 该程序可以从服务器的用户信息端点提取 UserInfo, 然后将用户信息存储在从身份验证过程返回的 OIDCAuthenticationToken 对象上。
在Spring context xml 中配置如下:
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="openIdConnectAuthenticationProvider" />
</security:authentication-manager>
<bean id="openIdConnectAuthenticationProvider" class="org.mitre.openid.connect.client.OIDCAuthenticationProvider">
...
</bean>
Named administrator 配置(可选)
默认情况下,基于用户的 issuer 和 subject, 所有有效用户都会获得 Spring Security GrantedAuthority。
若将这些权限映射到例如 ROLE_USER 和 ROLE_ADMIN 上,需要联入一个权限映射器, 例如库中提供的这个映射器:
<bean id="openIdConnectAuthenticationProvider" class="org.mitre.openid.connect.client.OIDCAuthenticationProvider">
<bean class="org.mitre.openid.connect.client.NamedAdminAuthoritiesMapper">
<property name="admins" ref="namedAdmins" />
</bean>
</bean>
<util:set id="namedAdmins" value-type="org.mitre.openid.connect.client.SubjectIssuerGrantedAuthority">
<bean class="org.mitre.openid.connect.client.SubjectIssuerGrantedAuthority">
<constructor-arg name="subject" value="5qk30csf9pv1hjmduex42onzwiygtr86" />
<constructor-arg name="issuer" value="https://accounts.cloudtrust.com.cn/" />
</bean>
</util:set>