Я разрабатываю мобильное приложение с Ionic (угловым) и API-интерфейсом с пружиной, я хочу включить метод аутентификации через openid-conect.
Я настраиваю REST API следующим образом
pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
......
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-jose</artifactId>
</dependency>
application.yml
uaa-base-url: https://...../oidc/v1
spring:
security:
oauth2:
client:
registration:
uaa:
client-id: ...
client-secret: ...
authorizationGrantType: authorization_code
redirect_uri_template: "{baseUrl}/login/oauth2/code/{registrationId}"
scope: openid,document,email
clientName: oauth2-id
provider:
uaa:
token-uri: ${uaa-base-url}/token
authorization-uri: ${uaa-base-url}/authorize
user-info-uri: ${uaa-base-url}/userinfo
jwk-set-uri: ${uaa-base-url}/jwks
userNameAttribute: email
для мобильного приложения я планирую настроить его с помощью следующего плагина
https://github.com/manfredsteyer/angular-oauth2-oidc
Это использует ImplicitFlow, мой вопрос, это правильный способ сделать это?
Является ли ImplicitFlow правильным выбором для мобильных приложений?
Как долго длится токен?
Должен ли я добавить свой собственный сервер openid и поставить его в качестве провайдера, чтобы я мог лучше контролировать API?