class AzureJwtAuth::Provider

Attributes

config[R]
config_uri[R]
keys[R]
uid[R]
validations[R]

Public Class Methods

new(uid, config_uri, validations={}) click to toggle source
# File lib/azure_jwt_auth/provider.rb, line 9
def initialize(uid, config_uri, validations={})
  @uid = uid
  @config_uri = config_uri
  @validations = validations

  begin
    @config = JSON.parse(Net::HTTP.get(URI(config_uri)))
  rescue JSON::ParserError
    raise InvalidProviderConfig, "config_uri response is not valid for provider: #{uid}"
  end

  load_keys
end

Public Instance Methods

load_keys() click to toggle source
# File lib/azure_jwt_auth/provider.rb, line 23
def load_keys
  uri = URI(@config['jwks_uri'])
  keys = JSON.parse(Net::HTTP.get(uri))['keys']

  @keys = {}
  keys.each do |key|
    cert = RsaPem.from(key['n'], key['e'])
    rsa = OpenSSL::PKey::RSA.new(cert)

    @keys[key['kid']] = rsa
  end
end