Aaron Parecki
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    1
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # IPSIE WG Meeting Minutes Date: 2026-01-13 ## Attendees * Aaron Parecki (Okta) * Dick Hardt (Hellō) * Atul Tulshibagwale (SGNL) * Karl McGuinness * JD Pawar (Workday) * Travis Tripp * Shannon Roddy * Jen Schreiber (SGNL) * Sarah Cecchetti * George Fletcher * Ameya Hanamsagar * Bertrand Carlier * Mark Drummond * Bjorn Hjelm (Yubico) ## Agenda - Welcome and antitrust policy reminder https://openid.net/policies/ - Notes & Recording Policy https://openid.net/wp-content/uploads/2025/09/OIDF_Notes-Recordings-Policy_Final_2025-09-11.pdf - OpenID Contributor Agreement reminder https://openid.net/intellectual-property - Reminder about OpenID Slack - invite link: https://join.slack.com/t/oidf/shared_invite/zt-3j8ucodu8-bAHQpkpJ1kcrLWNjWAWw0g - Session Termination - SL2 - AOB ## Notes Notetaker: Aaron Parecki * Aaron: Context for session termination in SL2 * Atul: Are the levels up for debate or are we talking about the mechanisms? * Dick: We are looking for what specs to use * Atul: Could use CAEP Session Revoked, would need to define in SL2 that an application MUST terminate the session that was established * Dick: Is that a defined event now? * Atul: Yes * Dick: Is the Session Revoked signal from the identity service? * Karl: Any publisher can send the event, it has a complex subject identifier * Dick: My understanding is that it's the publisher saying I've revoked sessions * Karl: Correct, it says that subject's session is revoked * Aaron: What if the Identity Service doesn't actually terminate the user's session? * Karl: The session could be a pairwise session identifier with the RP * Atul: Session Revoked in CAEP means the transmitter has terminated the session, how you identify the session depends on how you describe the subject. You could make it specific or broad like email or device ID using complex subject. * Karl: A topic to have debate on... SAML single logout and OIDC single logout, adoption has been poor. The use case we're trying to tackle in IPSIE doesn't have a clear mapping. There's user interactive logout like account switching, there's administratively defined session revocations, security incident response. The first challenge at Okta is the SSO federation has its own semantics of what a session is. A mobile app might launch a web page to sign in to the IdP and then the mobile app's server issues tokens, but the web browser session is lost because the mobile app is using OAuth to talk to its backend. How do you have stable identifiers across these tiers? When you have OIDC to the enterprise IdP but then you issue your own OAuth tokens there isn't necessarily a link back to the IdP. * Dick: To summarize.. you had 3 dimensions, what's happening in the application (web cookie, access tokens) * Karl: Derived sessions, how do you build a hierarchy, what are the identifiers and artifacts * Dick: The second dimension was why does the identity service want to revoke a session, one is the user wants to log out, one is something bad happened... * Karl: There's some granularity on administrative vs security incident. Could want to revoke only a specific device vs a security incident where you want to terminate everything. * Dick: The third dimension... * Karl: The identifiers for things * Atul: That was the reasoning behind the flexibility in the subjects in SSF, giving the flexibility to target a device or broadly like an email * Dick: It sounds like you mixed two things, how you identify what to do and what you want to do * Atul: The session revoked event doesn't say what goes into creating the event, it just says "I'm revoking the session under this scope" * Karl: For those scenarios you can't say you want to cascade down, it's implementation specific on the receiver * Atul: Right, we aren't dictating behavior on the receiver * Karl: The question of how to implement session revoked came up over and over, people don't want to uniformly revoke everything so how to scope what to revoke came up a lot * Atul: It is posisble for the transmitter to selectively send a session revoked event to certain receivers * Karl: I'm referring to do I revoke all refresh tokens in O365, what is the intended blast radius. * Atul: There are 3 dimensions. Breadth of the event, how many receivers/applications are impacted, what are the downstream cascading events which is not addressed by SSF * George: When we're talking about an async event like SSF, there's a dilemma between how prescriptive it is. That decision is deployment specific. It's an event, but if you want to make it mandatory in a deployment you can. * George: When it comes to policy, we could be more prescriptive on the publisher side for the expectations for what the RP to do. In a more federated context that becomes more difficult, we have to be careful in that context of where we put the details of what is needed. One dimension can be handled with subject identifier like Atul said, but there are likely other cases with cascading effects that will be more nuanced. * Karl: Because the event is in the context of the publisher you don't have the context for the refresh token identifier issued to the app. The refresh token at the IdP isn't meaningful. * Dick: The IPSIE goal is to describe how to do session termination and what the scope of that is. IPSIE's goal isn't to describe how to configure everything, it's to be prescriptive. * George: We need to be careful about forcing people to implement something just for the sake of the capability when they might already have infrastructure that can do it. We might need multiple ways that are IPSIE compliant to achieve the goal. * Dick: Having thousands of ways to do it won't meet the goal, but we can have a few paths. * Sarah: My understanding of shared signals is that it's all informative. Are we saying "I'd like this revoked" or "thou shalt". * Dick: What Atul and George are proposing is they would expand the semantics of what you can do with shared signals. * Sarah: It will need to be a two way signal, I need to get the confirmation back about what happened like there are this many tokens left with this lifetime, was the termination successful or not. * Dick: What would the receiver do with this information? * Sarah: They would know that if activity was seen from these tokens it's not a new compromise it's the same compromise * Aaron: For me, it's not about session termination specifically, it's about getting the user to log back in through the IdP before they can continue to do anything in the app * Bertrand: I agree with George where there are deployments where session termination works various ways. IPSIE is meant to be a plug and play, so we need to be somewhat prescriptive for what each role should implement in order to be plug and play. * Karl: In IPSIE it's about going back through an enterprise policy point. Since the app is disconnected how do we make it synchronized back to the enterprise. That might be a different verb/noun than session. * Travis: I have some questions. It needs to be something well adopted, we pay the most attention to what our customers are using, that is Entra and Okta, which carries a lot of weight for what we implement. Users can log in, do things, session revocation is straightforward. They might also go into a lot of apps they federate downstream to... * ... * Dick: You described all these different dimensions, but it sounds like we can all agree on at least one of the use cases is kill all the things. There's no ambiguitiy, the user has to start ovedr with the app. * Karl: I was putting that on the right side of the spectrum. The more we go left on the options the more surface area and application specific concepts there are. * Dick: Does anyone think we *shouldn't* do the use case where the user is forced to log in? Whatever the user has done to log in, start over and make them log in again. Revoking all access. * Travis: We call that the kill switch service. We need to ensure whatever command is sent has some specificity, targeting things that are spawned from sessions. * Dick: It sounds like you're agreeing, you have a kill switch. Kill all the things based on what the RP has done from logging in to the IdP. So a mobile app has an access token issued by the mobile app's backend. That should be terminated too until they SSO again. * Travis: If a bad actor compromises a session and spins up a bunch of agents and then left, you want those agents terminated too. * Sarah: How is this different from step-up? * Aaron: It also applies to non-interactive tokens * George: Our granularity of use cases is based on how much each role knows about the session graph. I don't have a problem starting with the "kill everything" mechanism. I suspect in reality enterprises probably want more fine grained control. We'll need some way to talk about the session graphs and what they mean in deployments. * Dick: But you agree that one of the things we should deliver is the nuclear option. * George: Sure. * Karl: Security teams today already need to build the session graph, it's a problem statement in the enterprise. The first action is revoke access, then you need to figure out what happened what data was accessed. That happens today in incident response. So we don't have the protocols to automate that knowledge, so it's interesting long term direction. But there's so much clear value on the "kill all" and it can be mapped to a CAEP event or whatever. If there's enough feedback that there is customer value we can just go do that and get it off the list. It adds a lot of value to the enterprise. Answering the nuanced problem statement is worthy long term investment but likely more than what we can do in 12 months. * Travis: I also think there is value in the more specific "kill my current session" as well as the "kill everything".

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully