keycloak
公開メンバ関数 | 公開変数類 | 静的公開変数類 | 限定公開メンバ関数 | 限定公開変数類 | 非公開変数類 | 全メンバ一覧
org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel > クラステンプレートabstract
org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel > の継承関係図
Inheritance graph
org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel > 連携図
Collaboration graph

公開メンバ関数

 AbstractIdentityProvider (KeycloakSession session, C config)
 
getConfig ()
 
Response export (UriInfo uriInfo, RealmModel realm, String format)
 
void close ()
 
Object callback (RealmModel realm, AuthenticationCallback callback, EventBuilder event)
 
Response performLogin (AuthenticationRequest request)
 
Response keycloakInitiatedBrowserLogout (KeycloakSession session, UserSessionModel userSession, UriInfo uriInfo, RealmModel realm)
 
void backchannelLogout (KeycloakSession session, UserSessionModel userSession, UriInfo uriInfo, RealmModel realm)
 
Response exchangeNotSupported ()
 
Response exchangeNotLinked (UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)
 
Response exchangeNotLinkedNoStore (UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)
 
Response exchangeTokenExpired (UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, UserModel tokenSubject)
 
Response exchangeUnsupportedRequiredType ()
 
void authenticationFinished (AuthenticationSessionModel authSession, BrokeredIdentityContext context)
 
void preprocessFederatedIdentity (KeycloakSession session, RealmModel realm, BrokeredIdentityContext context)
 
void importNewUser (KeycloakSession session, RealmModel realm, UserModel user, BrokeredIdentityContext context)
 
void updateBrokeredUser (KeycloakSession session, RealmModel realm, UserModel user, BrokeredIdentityContext context)
 
IdentityProviderDataMarshaller getMarshaller ()
 
Response retrieveToken (KeycloakSession session, FederatedIdentityModel identity)
 

公開変数類

String EXTERNAL_IDENTITY_PROVIDER
 
String FEDERATED_ACCESS_TOKEN
 

静的公開変数類

static final String ACCOUNT_LINK_URL = "account-link-url"
 

限定公開メンバ関数

Response exchangeErrorResponse (UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, String errorCode, String reason)
 
String getLinkingUrl (UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession)
 

限定公開変数類

final KeycloakSession session
 

非公開変数類

final C config
 

詳解

著者
Pedro Igor

構築子と解体子

◆ AbstractIdentityProvider()

50  {
51  this.session = session;
52  this.config = config;
53  }
final C config
Definition: AbstractIdentityProvider.java:48
final KeycloakSession session
Definition: AbstractIdentityProvider.java:47

関数詳解

◆ authenticationFinished()

void org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.authenticationFinished ( AuthenticationSessionModel  authSession,
BrokeredIdentityContext  context 
)
inline
147  {
148 
149  }

◆ backchannelLogout()

void org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.backchannelLogout ( KeycloakSession  session,
UserSessionModel  userSession,
UriInfo  uriInfo,
RealmModel  realm 
)
inline
85  {
86 
87  }

◆ callback()

Object org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.callback ( RealmModel  realm,
AuthenticationCallback  callback,
EventBuilder  event 
)
inline
70  {
71  return null;
72  }

◆ close()

65  {
66  // no-op
67  }

◆ exchangeErrorResponse()

Response org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.exchangeErrorResponse ( UriInfo  uriInfo,
ClientModel  authorizedClient,
UserSessionModel  tokenUserSession,
String  errorCode,
String  reason 
)
inlineprotected
104  {
105  Map<String, String> error = new HashMap<>();
106  error.put("error", errorCode);
107  error.put("error_description", reason);
108  String accountLinkUrl = getLinkingUrl(uriInfo, authorizedClient, tokenUserSession);
109  if (accountLinkUrl != null) error.put(ACCOUNT_LINK_URL, accountLinkUrl);
110  return Response.status(400).entity(error).type(MediaType.APPLICATION_JSON_TYPE).build();
111  }
String getLinkingUrl(UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession)
Definition: AbstractIdentityProvider.java:113
static final String ACCOUNT_LINK_URL
Definition: AbstractIdentityProvider.java:46

◆ exchangeNotLinked()

Response org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.exchangeNotLinked ( UriInfo  uriInfo,
ClientModel  authorizedClient,
UserSessionModel  tokenUserSession,
UserModel  tokenSubject 
)
inline
96  {
97  return exchangeErrorResponse(uriInfo, authorizedClient, tokenUserSession, "not_linked", "identity provider is not linked");
98  }
Response exchangeErrorResponse(UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, String errorCode, String reason)
Definition: AbstractIdentityProvider.java:104

◆ exchangeNotLinkedNoStore()

Response org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.exchangeNotLinkedNoStore ( UriInfo  uriInfo,
ClientModel  authorizedClient,
UserSessionModel  tokenUserSession,
UserModel  tokenSubject 
)
inline
100  {
101  return exchangeErrorResponse(uriInfo, authorizedClient, tokenUserSession, "not_linked", "identity provider is not linked, can only link to current user session");
102  }
Response exchangeErrorResponse(UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, String errorCode, String reason)
Definition: AbstractIdentityProvider.java:104

◆ exchangeNotSupported()

Response org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.exchangeNotSupported ( )
inline
89  {
90  Map<String, String> error = new HashMap<>();
91  error.put("error", "invalid_target");
92  error.put("error_description", "target_exchange_unsupported");
93  return Response.status(400).entity(error).type(MediaType.APPLICATION_JSON_TYPE).build();
94  }

◆ exchangeTokenExpired()

Response org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.exchangeTokenExpired ( UriInfo  uriInfo,
ClientModel  authorizedClient,
UserSessionModel  tokenUserSession,
UserModel  tokenSubject 
)
inline
135  {
136  return exchangeErrorResponse(uriInfo, authorizedClient, tokenUserSession, "token_expired", "linked token is expired");
137  }
Response exchangeErrorResponse(UriInfo uriInfo, ClientModel authorizedClient, UserSessionModel tokenUserSession, String errorCode, String reason)
Definition: AbstractIdentityProvider.java:104

◆ exchangeUnsupportedRequiredType()

Response org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.exchangeUnsupportedRequiredType ( )
inline
139  {
140  Map<String, String> error = new HashMap<>();
141  error.put("error", "invalid_target");
142  error.put("error_description", "response_token_type_unsupported");
143  return Response.status(400).entity(error).type(MediaType.APPLICATION_JSON_TYPE).build();
144  }

◆ export()

Response org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.export ( UriInfo  uriInfo,
RealmModel  realm,
String  format 
)
inline
60  {
61  return Response.noContent().build();
62  }

◆ getConfig()

55  {
56  return this.config;
57  }
final C config
Definition: AbstractIdentityProvider.java:48

◆ getLinkingUrl()

String org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.getLinkingUrl ( UriInfo  uriInfo,
ClientModel  authorizedClient,
UserSessionModel  tokenUserSession 
)
inlineprotected
113  {
114  String provider = getConfig().getAlias();
115  String clientId = authorizedClient.getClientId();
116  String nonce = UUID.randomUUID().toString();
117  MessageDigest md = null;
118  try {
119  md = MessageDigest.getInstance("SHA-256");
120  } catch (NoSuchAlgorithmException e) {
121  throw new RuntimeException(e);
122  }
123  String input = nonce + tokenUserSession.getId() + clientId + provider;
124  byte[] check = md.digest(input.getBytes(StandardCharsets.UTF_8));
125  String hash = Base64Url.encode(check);
126  return KeycloakUriBuilder.fromUri(uriInfo.getBaseUri())
127  .path("/realms/{realm}/broker/{provider}/link")
128  .queryParam("nonce", nonce)
129  .queryParam("hash", hash)
130  .queryParam("client_id", clientId)
131  .build(authorizedClient.getRealm().getName(), provider)
132  .toString();
133  }
C getConfig()
Definition: AbstractIdentityProvider.java:55

◆ getMarshaller()

167  {
168  return new DefaultDataMarshaller();
169  }

◆ importNewUser()

void org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.importNewUser ( KeycloakSession  session,
RealmModel  realm,
UserModel  user,
BrokeredIdentityContext  context 
)
inline
157  {
158 
159  }

◆ keycloakInitiatedBrowserLogout()

Response org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.keycloakInitiatedBrowserLogout ( KeycloakSession  session,
UserSessionModel  userSession,
UriInfo  uriInfo,
RealmModel  realm 
)
inline
80  {
81  return null;
82  }

◆ performLogin()

75  {
76  return null;
77  }

◆ preprocessFederatedIdentity()

void org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.preprocessFederatedIdentity ( KeycloakSession  session,
RealmModel  realm,
BrokeredIdentityContext  context 
)
inline
152  {
153 
154  }

◆ retrieveToken()

Response org.keycloak.broker.provider.IdentityProvider< C extends IdentityProviderModel >.retrieveToken ( KeycloakSession  session,
FederatedIdentityModel  identity 
)
inherited

Returns a javax.ws.rs.core.Response containing the token previously stored during the authentication process for a specific user.

引数
identity
戻り値

◆ updateBrokeredUser()

void org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.updateBrokeredUser ( KeycloakSession  session,
RealmModel  realm,
UserModel  user,
BrokeredIdentityContext  context 
)
inline
162  {
163 
164  }

メンバ詳解

◆ ACCOUNT_LINK_URL

final String org.keycloak.broker.provider.AbstractIdentityProvider< C extends IdentityProviderModel >.ACCOUNT_LINK_URL = "account-link-url"
static

◆ config

◆ EXTERNAL_IDENTITY_PROVIDER

String org.keycloak.broker.provider.IdentityProvider< C extends IdentityProviderModel >.EXTERNAL_IDENTITY_PROVIDER
inherited

◆ FEDERATED_ACCESS_TOKEN

String org.keycloak.broker.provider.IdentityProvider< C extends IdentityProviderModel >.FEDERATED_ACCESS_TOKEN
inherited

◆ session


このクラス詳解は次のファイルから抽出されました: