Skip to content

Add support for asynchronous SLO profile - #423

Merged
monkeyiq merged 11 commits into
masterfrom
feature/aslo
Aug 17, 2026
Merged

Add support for asynchronous SLO profile#423
monkeyiq merged 11 commits into
masterfrom
feature/aslo

Conversation

@tvdijen

@tvdijen tvdijen commented Aug 5, 2026

Copy link
Copy Markdown
Member

Closes #422

Support for this was requested in the simplesamlphp-repo

@tvdijen
tvdijen marked this pull request as ready for review August 15, 2026 11:20
@tvdijen
tvdijen requested a review from monkeyiq August 15, 2026 11:20
@monkeyiq

Copy link
Copy Markdown
Contributor

I think that the aslo:Asynchronous should be in the samlp:LogoutRequest only. The spec seems fairly strong that the aslo:Asynchronous must be in the LogoutRequest in the specific Extensions nesting (sec 2.1).

@monkeyiq

Copy link
Copy Markdown
Contributor

I was also looking a bit at the ssp code to see what might like to look at that subelement in order to not try a reply.

@tvdijen

tvdijen commented Aug 17, 2026

Copy link
Copy Markdown
Member Author

I think that the aslo:Asynchronous should be in the samlp:LogoutRequest only. The spec seems fairly strong that the aslo:Asynchronous must be in the LogoutRequest in the specific Extensions nesting (sec 2.1).

Yes, but the library should still accept anything in the samlp:Extensions. There could be extensions we don't support or recognize and that should not be a reason to reject the message. So the test in AuthnReqest is deliberately wrong (I should probably add a note)..

@monkeyiq

Copy link
Copy Markdown
Contributor

While I was testing I added the following asserts in testMarshallingElementOrdering() to check if the Async element came back.

         $this->assertCount(6, $authnRequestElements);
         $this->assertEquals('samlp:Extensions', $authnRequestElements[0]->tagName);
+        $this->assertEquals(1,$authnRequestElements[0]->childElementCount);        
+        $childElement = $authnRequestElements[0]->firstElementChild;
+        $this->assertEquals($childElement->localName, 'Asynchronous');
         $this->assertEquals('saml:Subject', $authnRequestElements[1]->tagName);
         $this->assertEquals('samlp:NameIDPolicy', $authnRequestElements[2]->tagName);
         $this->assertEquals('saml:Conditions', $authnRequestElements[3]->tagName);

Comment thread src/XML/aslo/Asynchronous.php
@monkeyiq

Copy link
Copy Markdown
Contributor

I am happy to merge this. The two little things I found can be done before or after if desired.

@monkeyiq
monkeyiq merged commit 26e8678 into master Aug 17, 2026
44 of 55 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for Asynchronous SLO

2 participants