Class: OmniauthOpenidFederation::OidcClient
- Inherits:
-
OAuth2::Client
- Object
- OAuth2::Client
- OmniauthOpenidFederation::OidcClient
- Defined in:
- lib/omniauth_openid_federation/oidc_client.rb
Constant Summary collapse
- CLIENT_ASSERTION_TYPE =
"urn:ietf:params:oauth:client-assertion-type:jwt-bearer"- CLIENT_ASSERTION_EXPIRATION_SECONDS =
180
Instance Attribute Summary collapse
-
#authorization_code ⇒ Object
Returns the value of attribute authorization_code.
-
#authorization_endpoint ⇒ Object
readonly
Returns the value of attribute authorization_endpoint.
-
#jwks_uri ⇒ Object
Returns the value of attribute jwks_uri.
-
#private_key ⇒ Object
Returns the value of attribute private_key.
-
#token_endpoint ⇒ Object
readonly
Returns the value of attribute token_endpoint.
-
#userinfo_endpoint ⇒ Object
readonly
Returns the value of attribute userinfo_endpoint.
Instance Method Summary collapse
- #access_token!(client_auth_method = :jwt_bearer) ⇒ Object
- #host ⇒ Object
- #identifier ⇒ Object
- #identifier=(value) ⇒ Object
-
#initialize(identifier:, redirect_uri:, authorization_endpoint:, token_endpoint:, secret: nil, userinfo_endpoint: nil, jwks_uri: nil) ⇒ OidcClient
constructor
A new instance of OidcClient.
- #redirect_uri ⇒ Object
- #redirect_uri=(value) ⇒ Object
Constructor Details
#initialize(identifier:, redirect_uri:, authorization_endpoint:, token_endpoint:, secret: nil, userinfo_endpoint: nil, jwks_uri: nil) ⇒ OidcClient
Returns a new instance of OidcClient.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 17 def initialize(identifier:, redirect_uri:, authorization_endpoint:, token_endpoint:, secret: nil, userinfo_endpoint: nil, jwks_uri: nil) token_uri = URI.parse(token_endpoint.to_s) site = build_site(token_uri) super( identifier, secret, site: site, authorize_url: , token_url: token_endpoint, redirect_uri: redirect_uri, auth_scheme: :private_key_jwt ) @authorization_endpoint = @token_endpoint = token_endpoint @userinfo_endpoint = userinfo_endpoint @jwks_uri = jwks_uri @authorization_code = nil end |
Instance Attribute Details
#authorization_code ⇒ Object
Returns the value of attribute authorization_code.
14 15 16 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 14 def @authorization_code end |
#authorization_endpoint ⇒ Object (readonly)
Returns the value of attribute authorization_endpoint.
15 16 17 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 15 def @authorization_endpoint end |
#jwks_uri ⇒ Object
Returns the value of attribute jwks_uri.
14 15 16 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 14 def jwks_uri @jwks_uri end |
#private_key ⇒ Object
Returns the value of attribute private_key.
14 15 16 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 14 def private_key @private_key end |
#token_endpoint ⇒ Object (readonly)
Returns the value of attribute token_endpoint.
15 16 17 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 15 def token_endpoint @token_endpoint end |
#userinfo_endpoint ⇒ Object (readonly)
Returns the value of attribute userinfo_endpoint.
15 16 17 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 15 def userinfo_endpoint @userinfo_endpoint end |
Instance Method Details
#access_token!(client_auth_method = :jwt_bearer) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 59 def access_token!(client_auth_method = :jwt_bearer) unless client_auth_method == :jwt_bearer raise ConfigurationError, "Unsupported client_auth_method: #{client_auth_method}" end OmniauthOpenidFederation::Validators.validate_private_key!(private_key) oauth_token = auth_code.get_token( , redirect_uri: redirect_uri, client_assertion_type: CLIENT_ASSERTION_TYPE, client_assertion: build_client_assertion ) OmniauthOpenidFederation::AccessToken.from_oauth2_token( oauth_token, strategy_options: instance_variable_get(:@strategy_options) ) end |
#host ⇒ Object
55 56 57 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 55 def host URI.parse(site.to_s).host end |
#identifier ⇒ Object
39 40 41 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 39 def identifier id end |
#identifier=(value) ⇒ Object
43 44 45 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 43 def identifier=(value) @id = value end |
#redirect_uri ⇒ Object
47 48 49 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 47 def redirect_uri [:redirect_uri] end |
#redirect_uri=(value) ⇒ Object
51 52 53 |
# File 'lib/omniauth_openid_federation/oidc_client.rb', line 51 def redirect_uri=(value) [:redirect_uri] = value end |