public static OAuth2AccessTokenRequest CreateAccessTokenRequestWithAssertion(System.IdentityModel.Tokens.SecurityToken token, string resource) { Utility.VerifyNonNullArgument("token", token); Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection securityTokenHandlerCollection = Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection.CreateDefaultSecurityTokenHandlerCollection(); securityTokenHandlerCollection.Add(new JsonWebSecurityTokenHandler()); return(OAuth2MessageFactory.CreateAccessTokenRequestWithAssertion(token, securityTokenHandlerCollection, resource)); }
public static OAuth2AccessTokenRequest CreateAccessTokenRequestWithAssertion(System.IdentityModel.Tokens.SecurityToken token, Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection securityTokenHandlers, string resource) { Utility.VerifyNonNullArgument("token", token); if (token is JsonWebSecurityToken) { return(OAuth2MessageFactory.CreateAccessTokenRequestWithAssertion((JsonWebSecurityToken)token, securityTokenHandlers, resource)); } if (token is System.IdentityModel.Tokens.GenericXmlSecurityToken) { return(OAuth2MessageFactory.CreateAccessTokenRequestWithAssertion((System.IdentityModel.Tokens.GenericXmlSecurityToken)token, resource)); } if (token is System.IdentityModel.Tokens.SamlSecurityToken || token is Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityToken) { return(OAuth2MessageFactory.CreateAccessTokenRequestWithAssertionForSamlSecurityTokens(token, securityTokenHandlers, resource)); } throw new System.ArgumentException("Unsupported SecurityToken"); }
private static OAuth2AccessTokenRequest CreateAccessTokenRequestWithAssertion(JsonWebSecurityToken token, Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection securityTokenHandlers, string resource) { Utility.VerifyNonNullArgument("token", token); Utility.VerifyNonNullArgument("securityTokenHandlers", securityTokenHandlers); JsonWebSecurityTokenHandler jsonWebSecurityTokenHandler = securityTokenHandlers[typeof(JsonWebSecurityToken)] as JsonWebSecurityTokenHandler; if (jsonWebSecurityTokenHandler == null) { throw new System.ArgumentException("The input security token handlers collection does not contain a handler for JWT tokens.", "securityTokenHandlers"); } string assertion = jsonWebSecurityTokenHandler.WriteTokenAsString(token); return(new OAuth2AccessTokenRequest { GrantType = "http://oauth.net/grant_type/jwt/1.0/bearer", Assertion = assertion, Resource = resource }); }
private static OAuth2AccessTokenRequest CreateAccessTokenRequestWithAssertionForSamlSecurityTokens(System.IdentityModel.Tokens.SecurityToken token, Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection securityTokenHandlers, string resource) { Utility.VerifyNonNullArgument("securityTokenHandlers", securityTokenHandlers); OAuth2AccessTokenRequest oAuth2AccessTokenRequest = new OAuth2AccessTokenRequest(); if (token is System.IdentityModel.Tokens.SamlSecurityToken) { oAuth2AccessTokenRequest.GrantType = "urn:oasis:names:tc:SAML:1.0:assertion"; } else { oAuth2AccessTokenRequest.GrantType = "urn:oasis:names:tc:SAML:2.0:assertion"; } System.Xml.XmlWriterSettings xmlWriterSettings = new System.Xml.XmlWriterSettings(); System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); xmlWriterSettings.OmitXmlDeclaration = true; using (System.Xml.XmlWriter xmlWriter = System.Xml.XmlWriter.Create(stringBuilder, xmlWriterSettings)) { securityTokenHandlers.WriteToken(xmlWriter, token); oAuth2AccessTokenRequest.Assertion = stringBuilder.ToString(); } oAuth2AccessTokenRequest.Resource = resource; return(oAuth2AccessTokenRequest); }