Class: MsIdToken::Validator
- Inherits:
-
Object
- Object
- MsIdToken::Validator
- Defined in:
- lib/ms-id-token-validator.rb,
lib/ms-id-token-validator/version.rb
Constant Summary collapse
- MS_CONFIG_URI =
"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration".freeze
- CACHED_CERTS_EXPIRY =
3600- TOKEN_TYPE =
"JWT".freeze
- TOKEN_ALGORITHM =
"RS256".freeze
- VERSION =
"0.1.2"
Instance Method Summary collapse
- #check(id_token, audience) ⇒ Object
-
#initialize(options = {}) ⇒ Validator
constructor
A new instance of Validator.
Constructor Details
#initialize(options = {}) ⇒ Validator
Returns a new instance of Validator.
31 32 33 |
# File 'lib/ms-id-token-validator.rb', line 31 def initialize( = {}) @cached_certs_expiry = .fetch(:expiry, CACHED_CERTS_EXPIRY) end |
Instance Method Details
#check(id_token, audience) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/ms-id-token-validator.rb', line 35 def check(id_token, audience) encoded_header, encoded_payload, signature = id_token.split(".") raise BadIdTokenFormat if encoded_payload.nil? || signature.nil? header = JSON.parse(Base64.decode64(encoded_header), symbolize_names: true) public_keys = JSON::JWK::Set.new(ms_public_keys) payload = JSON::JWT.decode(id_token, public_keys).symbolize_keys verify_payload(payload, audience) payload end |