Loop on SAML authentication page with Edge
Hello,
I am currently testing SAML authentication between FortiGate 7.4.8 and FortiAuthenticator 6.5.6 to allow users to access the internet. The user is running Windows 10 and is on the same VLAN as the FAC and FGT.
Authentication and redirection work perfectly with Firefox 142.0.1 or Chrome 140.0.7339.81. However, with Edge 140.0.3485.54, I get a loop between the FAC and the FGT.
Here is the configuration I use on FortiGate :
config user setting set auth-type http https set auth-cert "fgt.xxxxxxxxxx.xyz_2025" set auth-ca-cert "proxy.xxxxxxxxxx.xyz" set auth-timeout 30 end config user saml edit "fac_saml" set entity-id "http://fgt.xxxxxxxxxx.xyz:1003/remote/saml/metadata/" set single-sign-on-url "https://fgt.xxxxxxxxxx.xyz:1003/remote/saml/login" set single-logout-url "https://fgt.xxxxxxxxxx.xyz:1003/remote/saml/logout" set idp-entity-id "http://fac.xxxxxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/metadata/" set idp-single-sign-on-url "https://fac.xxxxxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" set idp-single-logout-url "https://fac.xxxxxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/logout/" set idp-cert "fac_saml_idp" set user-name "username" set group-name "group" set digest-method sha256 next end config firewall auth-portal set portal-addr "fgt.xxxxxxxxxx.xyz" end config user group edit "GS-WF-GOLD" set member "fac_saml" config match edit 1 set server-name "fac_saml" set group-name "CN=GS-WF-GOLD,OU=Web Filtering,DC=xxxxxxxxxx,DC=xyz" next end next end
Here is debug saml with loop :
samld_process_request [145]: len=208, cmd=0, pid=158, job_id=576234 samld_process_request [162]: Received 208, 0x4ee8c0 __update_sp_sig_opt [256]: SP no sig is required. __samld_sp_create_auth_req [429]: SAML SP algo: 1 -> lasso=4. Binding Method: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST __samld_sp_create_auth_req [449]: **** AuthnRequest URL **** https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX%3D&RelayState=magic%3D01000a86c9a8e8af *********************** __samld_sp_create_auth_req [463]: **** AuthnRequest **** <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_FE7FCD4995F1A9B336DBB21383A82687" Version="2.0" IssueInstant="2025-09-03T22:14:02Z" Destination="https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" SignType="0" SignMethod="0" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://fgt.xxxxxxx.xyz:1003/remote/saml/login"><saml:Issuer>http://fgt.xxxxxxx.xyz:1003/remote/saml/metadata/</saml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/></samlp:AuthnRequest> *********************** __samld_sp_create_auth_req [468]: **** SP Login Dump **** <lasso:Login xmlns:lasso="http://www.entrouvert.org/namespaces/lasso/0.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" LoginDumpVersion="2"><lasso:Request><samlp:AuthnRequest ID="_FE7FCD4995F1A9B336DBB21383A82687" Version="2.0" IssueInstant="2025-09-03T22:14:02Z" Destination="https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" SignType="0" SignMethod="0" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://fgt.xxxxxxx.xyz:1003/remote/saml/login"><saml:Issuer>http://fgt.xxxxxxx.xyz:1003/remote/saml/metadata/</saml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/></samlp:AuthnRequest></lasso:Request><lasso:RemoteProviderID>http://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/metadata/</lasso:RemoteProviderID><lasso:MsgUrl>https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX%3D&RelayState=magic%3D01000a86c9a8e8af</lasso:MsgUrl><lasso:MsgRelayState>magic=01000a86c9a8e8af</lasso:MsgRelayState><lasso:HttpRequestMethod>4</lasso:HttpRequestMethod><lasso:RequestID>_FE7FCD4995F1A9B336DBB21383A82687</lasso:RequestID></lasso:Login> *********************** samld_send_common_reply [91]: Code: 0, id: 576234, pid: 158, len: 2444, data_len 2428 samld_send_common_reply [99]: Attr: 14, 1789, <lasso:Login xmlns:lasso="http://www.entrouvert.org/namespaces/lasso/0.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" LoginDumpVersion="2"><lasso:Request><samlp:AuthnRequest ID="_FE7FCD4995F1A9B336DBB21383A82687" Version="2.0" IssueInstant="2025-09-03T22:14:02Z" Destination="https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" SignType="0" SignMethod="0" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://fgt.xxxxxxx.xyz:1003/remote/saml/login"><saml:Issuer>http://fgt.xxxxxxx.xyz:1003/remote/saml/metadata/</saml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/></samlp:AuthnRequest></lasso:Request><lasso:RemoteProviderID>http://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/metadata/</lasso:RemoteProviderID><lasso:MsgUrl>https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX%3D&RelayState=magic%3D01000a86c9a8e8af</lasso:MsgUrl><lasso:MsgRelayState>magic=01000a86c9a8e8af</lasso:MsgRelayState><lasso:HttpRequestMethod>4</lasso:HttpRequestMethod><lasso:RequestID>_FE7FCD4995F1A9B336DBB21383A82687</lasso:RequestID></lasso:Login> samld_send_common_reply [99]: Attr: 11, 639, https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX%3D&RelayState=magic%3D01000a86c9a8e8af samld_send_common_reply [119]: Sent resp: 2444, pid=158, job_id=576234. samld_process_request [145]: len=208, cmd=0, pid=158, job_id=576234 samld_process_request [162]: Received 208, 0x4ee8c0 __update_sp_sig_opt [256]: SP no sig is required. __samld_sp_create_auth_req [429]: SAML SP algo: 1 -> lasso=4. Binding Method: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST __samld_sp_create_auth_req [449]: **** AuthnRequest URL **** https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX%3D%3D&RelayState=magic%3D01000a86c9a8e8af *********************** __samld_sp_create_auth_req [463]: **** AuthnRequest **** <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_12933AB4937D80D06AEECC206D213CDE" Version="2.0" IssueInstant="2025-09-03T22:14:13Z" Destination="https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" SignType="0" SignMethod="0" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://fgt.xxxxxxx.xyz:1003/remote/saml/login"><saml:Issuer>http://fgt.xxxxxxx.xyz:1003/remote/saml/metadata/</saml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/></samlp:AuthnRequest> *********************** __samld_sp_create_auth_req [468]: **** SP Login Dump **** <lasso:Login xmlns:lasso="http://www.entrouvert.org/namespaces/lasso/0.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" LoginDumpVersion="2"><lasso:Request><samlp:AuthnRequest ID="_12933AB4937D80D06AEECC206D213CDE" Version="2.0" IssueInstant="2025-09-03T22:14:13Z" Destination="https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" SignType="0" SignMethod="0" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://fgt.xxxxxxx.xyz:1003/remote/saml/login"><saml:Issuer>http://fgt.xxxxxxx.xyz:1003/remote/saml/metadata/</saml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/></samlp:AuthnRequest></lasso:Request><lasso:RemoteProviderID>http://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/metadata/</lasso:RemoteProviderID><lasso:MsgUrl>https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX%3D%3D&RelayState=magic%3D01000a86c9a8e8af</lasso:MsgUrl><lasso:MsgRelayState>magic=01000a86c9a8e8af</lasso:MsgRelayState><lasso:HttpRequestMethod>4</lasso:HttpRequestMethod><lasso:RequestID>_12933AB4937D80D06AEECC206D213CDE</lasso:RequestID></lasso:Login> *********************** samld_send_common_reply [91]: Code: 0, id: 576234, pid: 158, len: 2448, data_len 2432 samld_send_common_reply [99]: Attr: 14, 1791, <lasso:Login xmlns:lasso="http://www.entrouvert.org/namespaces/lasso/0.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" LoginDumpVersion="2"><lasso:Request><samlp:AuthnRequest ID="_12933AB4937D80D06AEECC206D213CDE" Version="2.0" IssueInstant="2025-09-03T22:14:13Z" Destination="https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" SignType="0" SignMethod="0" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://fgt.xxxxxxx.xyz:1003/remote/saml/login"><saml:Issuer>http://fgt.xxxxxxx.xyz:1003/remote/saml/metadata/</saml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/></samlp:AuthnRequest></lasso:Request><lasso:RemoteProviderID>http://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/metadata/</lasso:RemoteProviderID><lasso:MsgUrl>https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX%3D%3D&RelayState=magic%3D01000a86c9a8e8af</lasso:MsgUrl><lasso:MsgRelayState>magic=01000a86c9a8e8af</lasso:MsgRelayState><lasso:HttpRequestMethod>4</lasso:HttpRequestMethod><lasso:RequestID>_12933AB4937D80D06AEECC206D213CDE</lasso:RequestID></lasso:Login> samld_send_common_reply [99]: Attr: 11, 641, https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX%3D%3D&RelayState=magic%3D01000a86c9a8e8af samld_send_common_reply [119]: Sent resp: 2448, pid=158, job_id=576234. samld_process_request [145]: len=208, cmd=0, pid=158, job_id=576234 samld_process_request [162]: Received 208, 0x4ee8c0 __update_sp_sig_opt [256]: SP no sig is required. __samld_sp_create_auth_req [429]: SAML SP algo: 1 -> lasso=4. Binding Method: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST __samld_sp_create_auth_req [449]: **** AuthnRequest URL **** https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX&RelayState=magic%3D01000a86c9a8e8af *********************** __samld_sp_create_auth_req [463]: **** AuthnRequest **** <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_7D51433E3C8CF9902EC928C5D82CE836" Version="2.0" IssueInstant="2025-09-03T22:14:13Z" Destination="https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" SignType="0" SignMethod="0" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://fgt.xxxxxxx.xyz:1003/remote/saml/login"><saml:Issuer>http://fgt.xxxxxxx.xyz:1003/remote/saml/metadata/</saml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/></samlp:AuthnRequest> *********************** __samld_sp_create_auth_req [468]: **** SP Login Dump **** <lasso:Login xmlns:lasso="http://www.entrouvert.org/namespaces/lasso/0.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" LoginDumpVersion="2"><lasso:Request><samlp:AuthnRequest ID="_7D51433E3C8CF9902EC928C5D82CE836" Version="2.0" IssueInstant="2025-09-03T22:14:13Z" Destination="https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" SignType="0" SignMethod="0" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://fgt.xxxxxxx.xyz:1003/remote/saml/login"><saml:Issuer>http://fgt.xxxxxxx.xyz:1003/remote/saml/metadata/</saml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/></samlp:AuthnRequest></lasso:Request><lasso:RemoteProviderID>http://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/metadata/</lasso:RemoteProviderID><lasso:MsgUrl>https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX&RelayState=magic%3D01000a86c9a8e8af</lasso:MsgUrl><lasso:MsgRelayState>magic=01000a86c9a8e8af</lasso:MsgRelayState><lasso:HttpRequestMethod>4</lasso:HttpRequestMethod><lasso:RequestID>_7D51433E3C8CF9902EC928C5D82CE836</lasso:RequestID></lasso:Login> *********************** samld_send_common_reply [91]: Code: 0, id: 576234, pid: 158, len: 2468, data_len 2452 samld_send_common_reply [99]: Attr: 14, 1801, <lasso:Login xmlns:lasso="http://www.entrouvert.org/namespaces/lasso/0.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" LoginDumpVersion="2"><lasso:Request><samlp:AuthnRequest ID="_7D51433E3C8CF9902EC928C5D82CE836" Version="2.0" IssueInstant="2025-09-03T22:14:13Z" Destination="https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/" SignType="0" SignMethod="0" ForceAuthn="false" IsPassive="false" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://fgt.xxxxxxx.xyz:1003/remote/saml/login"><saml:Issuer>http://fgt.xxxxxxx.xyz:1003/remote/saml/metadata/</saml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true"/></samlp:AuthnRequest></lasso:Request><lasso:RemoteProviderID>http://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/metadata/</lasso:RemoteProviderID><lasso:MsgUrl>https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX&RelayState=magic%3D01000a86c9a8e8af</lasso:MsgUrl><lasso:MsgRelayState>magic=01000a86c9a8e8af</lasso:MsgRelayState><lasso:HttpRequestMethod>4</lasso:HttpRequestMethod><lasso:RequestID>_7D51433E3C8CF9902EC928C5D82CE836</lasso:RequestID></lasso:Login> samld_send_common_reply [99]: Attr: 11, 651, https://fac.xxxxxxx.xyz/saml-idp/cc7z1kwrro2em2yu/login/?SAMLRequest=XXXXXXXX&RelayState=magic%3D01000a86c9a8e8af samld_send_common_reply [119]: Sent resp: 2468, pid=158, job_id=576234. samld_process_request [145]: len=208, cmd=0, pid=158, job_id=576234 samld_process_request [162]: Received 208, 0x4ee8c0 __update_sp_sig_opt [256]: SP no sig is required. __samld_sp_create_auth_req [429]: SAML SP algo: 1 -> lasso=4. Binding Method: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST __samld_sp_create_auth_req [449]:
The certificates (root and intermediate) are correctly installed on the computer. I imagine there is a setting to change on Edge. But I haven't found it yet.
