Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3.x] Native Android and iOS implementation integration support #82

Closed
4 tasks done
illambo opened this issue May 2, 2024 · 4 comments · Fixed by #91
Closed
4 tasks done

[3.x] Native Android and iOS implementation integration support #82

illambo opened this issue May 2, 2024 · 4 comments · Fixed by #91
Assignees
Labels
enhancement New feature or request

Comments

@illambo
Copy link

illambo commented May 2, 2024

Please check these requirements

Description

Studying the integration of the library on Android and iOS we found that although via WebView (both platform) or Android CustomTabs / iOS SFSafariViewController there are no difficulties, it is necessary to carry out a small server side integration to allow the native implementation of the solution on Android and iOS.

The evaluation of this analysis was done with a small poc (actors: android / ios / web / server), in essence, everything translates (in addition to the various configurations of the case for both environments which are not the responsibility of this library) in:

On the implementation side, the areas of impact that I find are:

  • configuration / env: possibility to configure an array of valid "origins" (strings).
  • SharedPipes/CheckOriginSecure adaptation implementation for allow valid origins integration
  • SharedPipes/CheckRelyingPartyIdContained adaptation implementation for allow valid sources integration
  • Create pipe for attach rpId and add to Assertion\Creator\AssertionCreator pipeline

I looked at a previous "draft" of closed pr #61 which went in that direction, although in my opinion it can be simplified with a simple in_array (match string) to be able to also be used for other possible non-Android scenarios.
For example, for Android I would value with the already calculated android:apk-key-hash (e.g. android:apk-key-hash:hlbf0LpDSuQ3UpvvmFAMc1OhrD96549OYYOkGJKxJVs) instead of calculating the relevant fingerprint (see detail on the composition), in order to make everything simpler (avoid recalculations at each request) and not differentiate per os (possibly commands could be provided for os as helpers to generate the appropriate strings).

Although at the current state of the branches it seems to me that this feat is also compatible on 2.x, perhaps it is better to keep 3.x as the basis (I don't seem to see any conflicts but I don't understand the tests part).

Let me know what you think,
thanks.

@illambo illambo added the enhancement New feature or request label May 2, 2024
@DarkGhostHunter
Copy link
Contributor

I think it would be great for 3.x. The areas of impact doesn't seem like too "impactful", since basically the pipe need to account for multiple configurable origin strings and rpId, am I correct?

@illambo
Copy link
Author

illambo commented May 2, 2024

Right, 2 pipes already present and maybe one to add for add rpId.

@illambo
Copy link
Author

illambo commented Jul 29, 2024

Thanks for the integration and release!

@DarkGhostHunter
Copy link
Contributor

No prob. Note that I removed a pipe and al RP checks are done in one single pipe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants