You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When trying OIDC authentication against ADFS, the LXD server may return issuer does not match error
Error: Failed OIDC Authentication: Failed to authenticate: Failed to verify access token: issuer does not match: Expected: https://ADFS.lab.ob32.com/adfs, got: http://ADFS.lab.ob32.com/adfs/services/trust
This is because ADFS by default use different URLs for access_token_issuer and issuer, as seen in the adfs/.well-known/openid-configuration endpoint
The access_token_issuer value seems to be taken from the federation service identifier
So one workaround is to change the federation service id URL to match the issuers URL, but this approach is far from ideal as it is a global setting change that would affect all users
It seems access_token_issuer is ADFS specific that do not conform to OIDC spec
.
The issuer value returned MUST be identical to the Issuer URL that was directly used to retrieve the configuration information. This MUST also be identical to the iss Claim value in ID Tokens issued from this Issuer.
Given that access_token_issuer is not part of the OIDC spec and you have demonstrated that this can be circumvented I don't think we're likely to address this. I realise that the workaround is a global setting, but it is a global setting that should be set so that ADFS is OIDC compliant. Otherwise integrations with other applications will also fail.
Required information
Issue description
When trying OIDC authentication against ADFS, the LXD server may return issuer does not match error
This is because ADFS by default use different URLs for access_token_issuer and issuer, as seen in the adfs/.well-known/openid-configuration endpoint
The access_token_issuer value seems to be taken from the federation service identifier
So one workaround is to change the federation service id URL to match the issuers URL, but this approach is far from ideal as it is a global setting change that would affect all users
It seems access_token_issuer is ADFS specific that do not conform to OIDC spec
While we can't change the ADFS behavior, probably we can improve the LXD server to either add a logic to process the access_token_issuer URL for ignore that field completely for compatibility reason, as suggested in AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet#1030 (comment)
Steps to reproduce
The text was updated successfully, but these errors were encountered: