So I have the following setup:
Frontend: AngularJS App
Backend: WebApi with Identity Server to validate clients
In my Backend I create a new in-memory client like so:
new Client
{
Enabled = true,
ClientId = "myapp.mycompany",
ClientUri = "https://myapp.mycompany.com",
ClientName = "My Client",
Flow = Flows.Implicit,
AllowAccessToAllScopes = true,
IdentityTokenLifetime = 300,
AccessTokenLifetime = 3600,
RequireConsent = false,
RedirectUris = new List<string>
{
"https://myapp.mycompany.com/assets/idSrv/callback.html",
"https://myapp.mycompany.com/assets/idSrv/silentrefreshframe.html"
},
PostLogoutRedirectUris = new List<string>
{
"https://myapp.mycompany.com/index.html"
}
},
In my front-end I have the following code that declares the client, I use the oidc-token-manager.js client
var authority = 'https://sts.mycompany.com/identity';
return {
baseUri: protocol,
tokenConfig: {
'client_id': 'myapp.mycompany',
'authority': authority,
'redirect_uri': 'https://myapp.mycompany.com/assets/idSrv/callback.html',
'post_logout_redirect_uri': 'https://myapp.mycompany.com/index.html',
'response_type': 'id_token token',
'scope': 'openid profile roleScope webApiScope',
'silent_redirect_uri': 'https://myapp.mycompany.com/assets/idSrv/silentrefreshframe.html',
'silent_renew': true
},
isDebugging: isDebugging
};
When I try to access my website at:
I get the following error:
The client application is not known or is not authorized.
I have enabled logging, this is what I get:
"Unknown client or not enabled: myapp.mycompany"
"{
\"RedirectUri\": \"https://myapp.mycompany.com/assets/idSrv/callback.html\",
\"SubjectId\": \"unknown\",
\"Flow\": \"AuthorizationCode\",
\"RequestedScopes\": \"\",
\"Raw\": {
\"state\": \"18141519257414835\",
\"nonce\": \"8585758378803323\",
\"client_id\": \"myapp.mycompany\",
\"redirect_uri\": \"https://myapp.mycompany.com/assets/idSrv/callback.html\",
\"response_type\": \"id_token token\",
\"scope\": \"openid profile roleScope webApiScope\"
}
}"
End authorize request
3001: "Endpoint failure" / "Endpoints" (Failure), Context: EventContext { ..., Details: EndpointDetail { EndpointName: "authorize" }